home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / V5PDPO (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  3.6 KB  |  135 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.DialogPeer;
  4.  
  5. public class Dialog extends Window {
  6.    boolean resizable;
  7.    boolean modal;
  8.    String title;
  9.    private static final String base = "dialog";
  10.    private static int nameCounter;
  11.    private static final long serialVersionUID = 5920926903803293709L;
  12.  
  13.    public Dialog(Frame parent) {
  14.       this(parent, "", false);
  15.    }
  16.  
  17.    public Dialog(Frame parent, String title) {
  18.       this(parent, title, false);
  19.    }
  20.  
  21.    public Dialog(Frame parent, String title, boolean modal) {
  22.       super(parent);
  23.       this.resizable = true;
  24.       if (parent == null) {
  25.          throw new IllegalArgumentException("null parent frame");
  26.       } else {
  27.          super.name = "dialog" + nameCounter++;
  28.          this.title = title;
  29.          this.modal = modal;
  30.       }
  31.    }
  32.  
  33.    public Dialog(Frame parent, boolean modal) {
  34.       this(parent, "", modal);
  35.    }
  36.  
  37.    public void addNotify() {
  38.       if (super.peer == null) {
  39.          super.peer = ((Window)this).getToolkit().createDialog(this);
  40.       }
  41.  
  42.       super.addNotify();
  43.    }
  44.  
  45.    public String getTitle() {
  46.       return this.title;
  47.    }
  48.  
  49.    public boolean isModal() {
  50.       return this.modal;
  51.    }
  52.  
  53.    public boolean isResizable() {
  54.       return this.resizable;
  55.    }
  56.  
  57.    protected String paramString() {
  58.       String str = super.paramString() + (this.modal ? ",modal" : ",modeless");
  59.       if (this.title != null) {
  60.          str = str + ",title=" + this.title;
  61.       }
  62.  
  63.       return str;
  64.    }
  65.  
  66.    public void setModal(boolean b) {
  67.       this.modal = b;
  68.    }
  69.  
  70.    public synchronized void setResizable(boolean resizable) {
  71.       this.resizable = resizable;
  72.       DialogPeer peer = (DialogPeer)super.peer;
  73.       if (peer != null) {
  74.          peer.setResizable(resizable);
  75.       }
  76.  
  77.    }
  78.  
  79.    public synchronized void setTitle(String title) {
  80.       this.title = title;
  81.       DialogPeer peer = (DialogPeer)super.peer;
  82.       if (peer != null) {
  83.          peer.setTitle(title);
  84.       }
  85.  
  86.    }
  87.  
  88.    public void show() {
  89.       synchronized(((Component)this).getTreeLock()){}
  90.  
  91.       try {
  92.          if (super.parent != null && super.parent.getPeer() == null) {
  93.             super.parent.addNotify();
  94.          }
  95.  
  96.          if (super.peer == null) {
  97.             this.addNotify();
  98.          }
  99.       } catch (Throwable var3) {
  100.          throw var3;
  101.       }
  102.  
  103.       ((Container)this).validate();
  104.       if (super.visible) {
  105.          ((Window)this).toFront();
  106.       } else {
  107.          super.visible = true;
  108.          if (this.isModal()) {
  109.             EventDispatchThread dt = null;
  110.             if (Thread.currentThread() instanceof EventDispatchThread) {
  111.                dt = new EventDispatchThread("AWT-Dispatch-Proxy", Toolkit.getEventQueue());
  112.                ((Thread)dt).start();
  113.             }
  114.  
  115.             if ((super.state & 1) == 0) {
  116.                ((Window)this).postWindowEvent(200);
  117.                super.state |= 1;
  118.             }
  119.  
  120.             super.peer.show();
  121.             if (dt != null) {
  122.                dt.stopDispatching();
  123.             }
  124.          } else {
  125.             super.peer.show();
  126.             if ((super.state & 1) == 0) {
  127.                ((Window)this).postWindowEvent(200);
  128.                super.state |= 1;
  129.             }
  130.          }
  131.       }
  132.  
  133.    }
  134. }
  135.